<?php include_once($_SERVER['DOCUMENT_ROOT']."/controller/common/common_setting_unit.php");         // 引入通用的设置文件 ?>

<?php
// upload_handler.php - 上传处理文件

// 检查是否为POST请求
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['code' => 405, 'msg' => 'Method Not Allowed']);
    exit;
}

try {
    // 检查是否有上传文件
    if (!isset($_FILES) || count($_FILES) == 0) {
        throw new Exception('没有上传文件');
    }
    
    // 获取上传文件信息
    $file = $_FILES['file']; // 默认字段名
    
    // 检查上传错误
    if ($file['error'] !== UPLOAD_ERR_OK) {
        throw new Exception('文件上传出错: ' . $file['error']);
    }
    
    // 验证文件类型（仅允许图片）
    $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
    $fileType = mime_content_type($file['tmp_name']);
    if (!in_array($fileType, $allowedTypes)) {
        throw new Exception('只允许上传JPEG、PNG、GIF格式的图片');
    }
    
    // 验证文件大小（例如限制为5MB）
    $maxFileSize = 5 * 1024 * 1024;
    if ($file['size'] > $maxFileSize) {
        throw new Exception('文件大小不能超过5MB');
    }
    
    // 生成唯一文件名
    $extension = pathinfo($file['name'], PATHINFO_EXTENSION);
    $newFileName = date('YmdHis')."-".rand(10000,99990) . '.' . $extension;
    
    // 设置上传目录（请根据实际情况修改）
    $uploadDir = $_SERVER['DOCUMENT_ROOT'] . '/uploadfiles/temp/';
    if (!is_dir($uploadDir)) {
        mkdir($uploadDir, 0755, true);
    }
    
    $uploadPath = $uploadDir . $newFileName;
    
    // 移动上传文件
    if (!move_uploaded_file($file['tmp_name'], $uploadPath)) {
        throw new Exception('文件保存失败');
    }
    
    // 返回成功响应
    echo json_encode([
        'code' => 0,
        'msg' => '上传成功',
        'data' => [
            'src' => '/uploadfiles/temp/' . $newFileName,
            'name' => $newFileName
        ]
    ]);
    
} catch (Exception $e) {
    // 返回错误响应
    echo json_encode([
        'code' => 1,
        'msg' => $e->getMessage()
    ]);
}
?>
